/*
 * LineElement.h
 *
 *  Created on: May 29, 2011
 *      Author: gilang
 */

#ifndef LINEELEMENT_H_
#define LINEELEMENT_H_
#include "Element.h"

class LineElement: public Element {
public:
	LineElement();
	  ~LineElement();
	Node *getNode() const;//{return node;};
	void setNode(Node *node); //{this->node=node;};
	Element * getNext();
	void setNext(Element *next); //{this->next=next;}
	Element * getBefore();
	void setBefore(Element *before); //{this->before=before;}
	void setElementDim(double ed); //{this->elementDim=ed;}
	double getElementDim(); //{return elementDim;}
	Vector<double> & getLoadVector();
	Matrix<double> & getStiffMatrix();
	void setLoadVect(const Vector<double> &v);
	void setStiffMatrix(const Matrix<double> &m);
	double operator()(int i,int j);
	Node get(int i);
	double diff(int i);
	void addNode(int i,const Node &n);
	void setMaterial(const Material &mat);
	Material & getMaterial();
	void setLabel(const string &s);
	string getLabel();
	Element * operator=(LineElement *le);
	LineElement & operator=(Element* le);
	Element& operator=(Element& el);
	double operator[](const int i);
};

#endif /* LINEELEMENT_H_ */
